package com.fxdigital.nvr;

/** 
 * 计划录像参数
 * */
public class PlanRecordParam {
	public PlanRecordParam() {
		schedTime1 = new SchedTime();
		schedTime2 = new SchedTime();
		schedTime3 = new SchedTime();
		schedTime4 = new SchedTime();
		schedTime5 = new SchedTime();
		schedTime6 = new SchedTime();
		schedTime7 = new SchedTime();
		schedTime8 = new SchedTime();
	}
	
	private int mode; // 0-时间段录像，1-全天录像
    
    // 录像类型，当mode为0时可忽略此参数
    // 0-定时录像，1-移动侦测录像，2-报警录像，3-移动侦测或报警录像，4-移动侦测和报警录像，
    // 5-命令触发录像，6-智能报警录像，10-PIR报警，11-无线报警，12-呼救报警，
    // 13-移动侦测、PIR、无线、呼救等所有报警类型的“或”，14-智能交通事件，15-越界侦测，
    // 16-区域入侵，17-声音异常，18-场景变更侦测，
    // 19-智能侦测(越界侦测|区域入侵|进入区域|离开区域|人脸识别)，17-人脸侦测
    private int type;
    
    // 分时间段录像时的时间参数，一共8个时间段
    // 当mode为1时，可忽略这8个参数
    private SchedTime schedTime1;
    private SchedTime schedTime2;
    private SchedTime schedTime3;
    private SchedTime schedTime4;
    private SchedTime schedTime5;
    private SchedTime schedTime6;
    private SchedTime schedTime7;
    private SchedTime schedTime8;

    private int streamType; // 码流类型，0-主码流，1-子码流，2-第三码流
    
    private int preRecordTime;  // 预录时间：0-不预录，1-5秒，2-10秒，3-15秒，4-20秒，5-25秒，6-30秒，7-0xffffffff(尽可能预录) 

    private int postRecordTime; // 录象延时时间，0-5秒， 1-10秒， 2-30秒， 3-1分钟， 4-2分钟， 5-5分钟， 6-10分钟
    
    // 录像保存的最长时间，单位：天。超过这个时间，该录像文件将被强制删除；若设置为0天则不强制删除，除非文件被循环覆盖
    private int recorderDuration;

    // 是否冗余录像（重要数据双备份）：0-不录像，1-录像
    private int copyRecord;

    // 录像时复合流编码时是否记录音频数据：0-不记录，1-记录 
    private int audioRecord;

    // 录像是否存档，0- 录像不存档，1- 录像存档，目前定时录像不存档 
    private int backupRecord; 

    // 录像锁定时长，单位：小时，0表示不锁定，0xffff表示永久锁定。录像段的时长大于锁定的持续时长的录像，将不会锁定
    private int lockDuration;

	public int getMode() {
		return mode;
	}

	public void setMode(int mode) {
		this.mode = mode;
	}

	public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}
	
    public int getPreRecordTime() {
		return preRecordTime;
	}

	public void setPreRecordTime(int preRecordTime) {
		this.preRecordTime = preRecordTime;
	}

	public int getPostRecordTime() {
		return postRecordTime;
	}

	public void setPostRecordTime(int postRecordTime) {
		this.postRecordTime = postRecordTime;
	}

	public SchedTime getSchedTime1() {
		return schedTime1;
	}

	public void setSchedTime1(SchedTime schedTime1) {
		this.schedTime1 = schedTime1;
	}

	public SchedTime getSchedTime2() {
		return schedTime2;
	}

	public void setSchedTime2(SchedTime schedTime2) {
		this.schedTime2 = schedTime2;
	}

	public SchedTime getSchedTime3() {
		return schedTime3;
	}

	public void setSchedTime3(SchedTime schedTime3) {
		this.schedTime3 = schedTime3;
	}

	public SchedTime getSchedTime4() {
		return schedTime4;
	}

	public void setSchedTime4(SchedTime schedTime4) {
		this.schedTime4 = schedTime4;
	}

	public SchedTime getSchedTime5() {
		return schedTime5;
	}

	public void setSchedTime5(SchedTime schedTime5) {
		this.schedTime5 = schedTime5;
	}

	public SchedTime getSchedTime6() {
		return schedTime6;
	}

	public void setSchedTime6(SchedTime schedTime6) {
		this.schedTime6 = schedTime6;
	}

	public SchedTime getSchedTime7() {
		return schedTime7;
	}

	public void setSchedTime7(SchedTime schedTime7) {
		this.schedTime7 = schedTime7;
	}

	public SchedTime getSchedTime8() {
		return schedTime8;
	}

	public void setSchedTime8(SchedTime schedTime8) {
		this.schedTime8 = schedTime8;
	}

	public int getStreamType() {
		return streamType;
	}

	public void setStreamType(int streamType) {
		this.streamType = streamType;
	}

	public int getRecorderDuration() {
		return recorderDuration;
	}

	public void setRecorderDuration(int recorderDuration) {
		this.recorderDuration = recorderDuration;
	}

	public int getCopyRecord() {
		return copyRecord;
	}

	public void setCopyRecord(int copyRecord) {
		this.copyRecord = copyRecord;
	}

	public int getAudioRecord() {
		return audioRecord;
	}

	public void setAudioRecord(int audioRecord) {
		this.audioRecord = audioRecord;
	}

	public int getBackupRecord() {
		return backupRecord;
	}

	public void setBackupRecord(int backupRecord) {
		this.backupRecord = backupRecord;
	}

	public int getLockDuration() {
		return lockDuration;
	}

	public void setLockDuration(int lockDuration) {
		this.lockDuration = lockDuration;
	}
}
